<?php


namespace app\web\service;


use app\common\cachemodel\ZlReportText;
use app\common\lib\astrolog\NatalReport as NatalReportLib;
use app\common\lib\exception\ApiException;
use app\common\model\Recode;
use think\Log;

class NatalReport
{
    protected $type = [
        39 => 'feelings', // 恋爱
        40 => 'dating', // 婚姻
        41 => 'money', // 财富
        42 => 'carrer', // 事业
        52 => 'academic', // 学业
    ];
    protected $recodeInfo = [];

    /**
     * 获取本命报告数据
     * @param int $uid
     * @param int $gid
     * @param int $rid
     * @param string $orderId 订单ID
     * @param bool $isTest 是否为测试，若为测试，则使用实时计算
     * @return array
     * @throws ApiException
     */
    public function getNatalReport(int $uid, int $gid, int $rid, $orderId = '', $isTest = false): array
    {
        // 若为测试，则启用实时计算
        if ($isTest === true)
        {
            $data = $this->getDataTest($this->type[$gid], $rid);
        } else
        {
            $data = $this->getData($uid, $rid, $gid, $this->type[$gid], $orderId); // 对接缓存调用
        }
        $levels = $data['text'][0]['levels'];

        $text = $this->getText($this->type[$gid]);

        return [
            'data' => [
                'text' => $data['text'],
                'name' => $data['name'],
            ],
            'level' => $levels,
            'text' => $text,
            'recode_is_change' => $data['recode_is_change'] ?? false,
            'recode_info' => $data['recode_info'] ?? []
        ];
    }

    /**
     * 获取固定词库
     * @param string $type
     * @return array
     */
    private function getText($type = ''): ?array
    {
        $text = [
            'feelings' => [ // 恋爱
                // 恋爱报告描述
//                'text1' => "恋爱，一直是人际关系领域的重要内容，也是生活事项中不可或缺的的一部分。从古至今，美好的恋爱关系一直是很多人心中的黄金屋、颜如玉。但每个人的恋爱关系发展情况也会大有不同：有的人爱的刻骨铭心，有的人相伴平淡无奇，有的人你浓情蜜意彼此守护。\r\n\r\n若想详细了解一个人人生中的恋爱情况，我们需要通过以下四个维度主题的了解与认知，才能对一个人的恋爱格局有更细致全面的判断。",
                'text1' => '恋爱，一直是人际关系领域的重要内容，也是生活事项中不可或缺的的一部分。从古至今，美好的恋爱关系一直是很多人心中的黄金屋、颜如玉。但每个人的恋爱关系发展情况也会大有不同：有的人爱的刻骨铭心，有的人相伴平淡无奇，有的人浓情蜜意彼此守护。' . "\r\n\r\n" . '若想详细了解一个人人生中的恋爱情况，我们需要通过以下5个维度主题的了解与认知，才能对一个人的恋爱格局有更细致全面的判断。',
                // 主题 1：恋爱观念综述
                'text2' => "一个人的恋爱观念，会很大程度影响自己的恋爱未来走向和吉凶趋势，也会影响一个人在亲密关系中获得幸福感的多寡。\r\n\r\n因此，您需要很重视以下部分的分析内容，能帮助您了解自己在对待爱情议题时的观念对您恋爱发展的影响。",
                // 主题 2：恋爱对象分析
                'text3' => '在现代社会中，当我们要选择走进一段恋爱关系的时候，多半都会去考虑恋爱对象的条件特质，因此，我们会针对您的星盘，大致分为 3 个维度去剖析跟你有恋爱缘分的对象条件，包含：对象类型、条件背景、相识途径等，以此尽量做到让您可以多角度了解到跟自己有恋爱缘分的伴侣特质及倾向情况。',
                // 主题 3：恋爱发展情况分析
                'text4' => '当我们有机会已经走进一段恋爱关系，对于恋爱发展及未来吉凶走势一直是许多人关注的重点领域。因此，我们会针对您的星盘，大致分为2个维度去剖析你的情感走向，包含：异性桃花多寡、恋爱是否顺遂等角度的剖析说明，以此尽量让您可以多角度了解自己爱情发展走势及吉凶趋势状态。',
                //主题 4：恋爱相处方式建议
                'text5' => '若想要一段恋爱关系长久稳定的发展下去，那么在与你相处的过程中，你的另一半会需要以下的恋爱相处方式建议，努力经营就能更好的促进一段美好恋情。',
                'end_desc' => "通过以上各个维度对您的恋爱情况进行的详尽分析，相信您已经对自己人生恋爱领域总体格局有一定清晰的认知了。\r\n\r\n女神也提醒您，人生的恋爱顺遂与否多半都是靠自己努力经营而来，无论是您恋爱机遇强还是机遇弱，都应当保持正确的恋爱观念和态度，把握机缘，珍惜爱你的人，克己并努力经营感情关系，也只有这样才能更好的获得到一份幸福感长久的恋爱关系！",
            ],
            'money' => [ // 财富
                // 财富报告描述
//                'text1' => "金钱财富为养命之源，钱财是我们生活中不可或缺之物，无财不可奉养父母、不可以安置家中妻小。\r\n\r\n若想要详细了解一个人人生中的财富情况，我们会需要通过以下 4 个维度主题的了解与认知，才能对一个人的财富格局有更细致全面的判断。",
                'text1' => '金钱财富为养命之源，钱财是我们生活中不可或缺之物，无财不可奉养父母、不可以安置家中妻小。若想要详细了解一个人人生中的财富情况，我们会需要通过以下4个维度主题的了解与认知，才能对一个人的财富格局有更细致全面的判断。',
                // 主题 1：财富观念综述
                'text2' => '一个人对待金钱的态度和金钱消费观，会很大程度上影响自己的财富格局大小，也会影响一个人获取财富的方式、获得的之后的态度，以及能否很好的守住你的收益。因此，您需要很重视以下部分的分析内容，能帮助您了解自己在对待财富议题时的观念对你财富的影响。',
                // 主题 2：财富来源及方式
                'text3' => '在现代社会中，我们的经济收入和财富组成部分是呈现多元的情况，因此无法用单一方向去论断一个人的财富来源，否则难免会太过铁口直断不够详尽。因此，我们会针对您的星盘，大致分为 3 大财富来源维度，包含：<span>正财收入、遗产继承收入、偏财收入等</span>，去剖析你人生中各个财富来源的可能性，以此尽量做到让您可以多角度了解到自己财富获取来源的可能性大小。',
                // ①正财收入分析
                'text4' => '一个人的正财收入会由 <span>工作收入</span> 和 <span>经营收入</span> 这两部分共同组成，因此您需要通过以下内容去了解自己在正财领域获得财富的可能性及获益程度如何。',
                // ②遗产继承分析
                'text5' => '一个人的遗产继承收益会由 <span>不动产收入</span> 和 <span>动产收入</span> 这两部分共同组成。不动产一般指房产，动产一般指车、股票、基金、保险赔偿等；因此，您需要通过以下内容去了解自己在遗产继承领域下的获得财富的可能性及获益程度。',
                // ③偏财收入分析
                'text6' => '一个人的偏财收益会由 <span>投机收入</span> 和 <span>投资收入</span> 。投机收益一般指彩票、赌博、短期股票交易；投资一般通过长期持有产生的利润、房租、利息、股息、房产、债券、股票、贵金属、保险、基金信托等；因此，您需要通过以下内容去了解自己在偏财领域下的获得财富的可能性及获益程度。',
                // 主题 3：财富等级分析
                'text7' => '你的一生在经历过辛勤的奋斗和努力之后，你最终的财富等级会是如何呢？因此，我们会针对您的星盘，大致分为3个维度去剖析您的财富等级情况，包含：财富积累方式、财富等级判断、财富发展稳定性等，以此尽量做到让您可以多角度了解自己一生财富等级发展状态。',
                'text8' => '你一生中的财富发展稳定性会因不同阶段有所不同，为了更好的了解你各个阶段的财富稳定性趋势，我们将从你早年、中年、晚年三个阶段来进行分析：',
                'end_desc' => "通过以上各个维度对您的财富情况进行的详尽分析，相信您已经对自己人生财富总体格局有一定清晰的认知了。\r\n\r\n女神也提醒您，人生的财富多半都是靠自己把握机遇努力拼搏而来，无论是您财富能力强还是能力弱，都应当保持积极勤奋的本分意识，也只有这样才能更好的认识机遇、把握机遇，为自己人生积累更多财富！",
            ],
            'carrer' => [ // 事业
                // 事业报告描述
//                'text1' => "财为养命之源，但为我们大多数人都需要努力奋斗赚钱，才能有经济来源。因此工作事业发展吉凶情况就显得颇为重要。就占星学而言，工作是雇佣性质，需要每天身体力行较为强调劳力；而事业则为自主经营性质，较为劳心。\r\n\r\n因此每个人的工作事业发展情况也会大有不同，若想详细了解一个人的事业格局情况，我们需要通过以下五个维度主题的了解与认知，才能对一个人的事业发展格局有更细致全面的判断。",
                'text1' => '我们大多数人都需要努力奋斗事业，才能实现自己人生的价值。因此工作事业发展吉凶情况就显得颇为重要。就占星学而言，工作是雇佣性质，需要每天身体力行较为强调劳力；而事业则为自主经营性质，较为劳心。' . "\r\n\r\n" . '因此每个人的工作事业发展情况也会大有不同，若想详细了解一个人的事业格局情况，我们需要通过以下6个维度主题的了解与认知，才能对一个人的事业发展格局有更细致全面的判断。',
                // 主题 1：事业观念综述
                'text2' => '一个人的工作事业观念，会很大程度影响自己的事业未来走向和吉凶趋势，也会影响一个人在工作或事业中获得的成就高低。因此，您需要很重视以下部分的分析内容，能帮助您了解自己在对待事业议题的观念对一生事业发展的影响。',
                // 主题 2：职业发展倾向分析
                'text3' => '在现代社会中，我们每个人都要去选择自己的一个社会身份和角色，因此选择一个好的职业发展方向，了解自己的职业发展倾向就显得尤为重要。因此，我们会针对您的星盘，大致分为6个维度去剖析你个人的职业发展倾向，包含：适合从业的领域、适合的职业岗位、工作环境分析、上级领导相处分析、职场人际分析、薪资待遇分析、职业稳定性分析等，以此尽量做到让您可以多角度了解到跟自己有缘分的职业发展倾向情况。',
                // 主题 3：创业发展可能性分析
                'text4' => '无论什么年代，发展事业并让自己越来越好是我们每个人都关心的议题。对于有些人来说，与其为人雇佣打工平稳安逸，不如拼一把自己干博个富贵机会拼一拼。但是每个人事业发展格局不同，因此我们会针对您的星盘，判断您是否适合创业或仅仅适合普通就业、可能遭遇的顺利或困难情况分析等，以此尽量让您多角度了解自己的创业发展可能性及倾向情况。',
                // 主题 4：合伙事业发展倾向分析
                'text5' => '无论是工作就业还是创业，一个人的事业仍旧存在其它发展的可能性，即便是已有稳定的就业工作，也依然有可能会投资加入其它合伙事业项目中，但每个人合伙事业发展可能性不同，因此我们会针对您的星盘，去判断分析是否适合合伙事业的发展，以及可能会遇到的困难阻碍因素等，以此尽量做到让您可以多角度了解到自己合伙事业发展倾向的具体情况。',
                // 主题 5：事业发展前途分析
                'text6' => '在我们的一生之中，可能会从事多个行业领域的岗位，亦或开创一些经营性事业，那么，在经历过岁月奋斗之后，我们的事业将会有怎样的前途未来？是否能够获得一定的成就？获得的事业成就稳定性如何？因此，我们会针对您的星盘，大致分为2个维度去剖析事业前途未来的发展，以此尽量做到让您可以多角度了解自己的事业前途未来发展及倾向情况。',
                // ②【获得成就稳定性分析】
                'text7' => '你在事业的整体阶段中会有不同的发展情况，我们下面从事业的前中后三个阶段的整体状况来分析，一般情况下，事业的开始点是你第一次工作开始计算，但是每个人开始工作的时间不一定相同，因为有的人很小就开始工作，比如童星，有的人很晚才开始工作，所以参阅时以你第一次参加工作为起点时间，以下是具体情况：',
                'text8' => '你事业发展的前期的发展情况是，这个阶段：',
                'text9' => '你事业发展的中期的发展情况是，这个阶段：',
                'text10' => '你事业发展的后期的发展情况是，这个阶段：',
                'end_desc' => "通过以上各个维度对您的事业发展进行的详尽分析，相信您已经对自己人生事业领域总体格局有一定清晰的认知了。\r\n\r\n女神也提醒您，人生的事业发展顺遂与否多半都是靠自己努力经营而来，无论是您事业机遇强还是机遇弱，都应当保持正确的事业观念和态度，克己并努力经营，汲汲营营的做好当下每一份工作，也只有这样才能拼搏到一份更好的事业前途，收获人生的光明和未来！",
            ],
            'dating' => [
                // 婚姻报告描述
                'text1' => '婚姻，是一个建立属于自己的家庭、担负起自己新的生活责任的重要阶段。婚姻能够过得幸福是有原因的，找到一个对的人，树立自己正确的婚姻观，才能收获到更好的婚姻生活。就占星学而言，一个人的婚姻幸福与否的影响因素很多，姻缘机遇也并非只是唯一。若想了解自己一生的婚姻情况，你需要通过以下6个维度的细致剖析，才能对自己婚姻全貌有更细致全面的了解与认知。',
                // 婚姻特质
                'text2' => '每个人的婚姻都有独特之处，了解自己的婚姻特质能够让你尽可能的知道自己婚姻的基调，因此我们针对你的星盘，分为3个维度去剖析，让你可以多角度了解自己的婚姻特质。',
                // 什么在阻碍你的婚姻
//                'text3' => '幸福的婚姻有很多种，而有问题的婚姻却有各种各样的原因。也许一生之中我们会遇到各种各样的人，有一类人却是跟我们有缘无分无法有结果的，有些感情也容易因为一些原因而错过了。因此我们针对你的星盘，分为2个维度去剖析，让你可以多角度了解阻碍你姻缘的那些原因。',
                'text3' => '幸福的婚姻有很多种，而有问题的婚姻却有各种各样的原因。也许一生之中我们会遇到形形色色的人，有一类人可能会跟我们有缘无分，有些感情也容易因为一些原因而错过，因此我们针对你的星盘，从各个纬度去剖析，让你可以多角度了解。<b style="color: #64b6f5;">若你的另一半出现以下某种特质，不代表一定不会在一起，而是你们进入婚姻后会存在诸多阻碍，需要克服重重难关。</b>',
                // 结婚对象条件如何
                'text4' => "每个人都有跟自己有缘分的人，那么跟你有结婚缘分的人是有怎样的特质呢？一般能跟你最终走进婚姻的人都会满足其中的一部分条件，因此我们针对对你的星盘，分为5个维度去剖析，让你可以多角度了解跟你有婚姻缘分对象的条件及特质是怎么样的。",
                // 什么时候会结婚
                'text5' => "从专业占星角度来讲，一个人在一生之中，结婚的机缘其实不是只有唯一的机会，而是会有多次姻缘的机遇，如果你把握了住其中之一的机会，你就能成就自己的姻缘。如果错失了，也不用太悲伤，也许下一次机会值得你等待。因此我们针对你的星盘，总结了你一生之中最容易结婚的年份，让你可以一目了然自己的姻缘，如果遇到合适的人，一定要好好把握哦。",
                // 婚后感情如何
                'text6' => "婚姻其实是一个很考验双方经营智慧的事情，单方面的付出、一味的委曲求全是换不回一段美好幸福的婚姻，只有彼此关系平等，互相付出、彼此支持才能成就一段好的婚姻关系。因此我们根据你的星盘，分为4个维度去剖析，让你可以多角度了解你婚后的感情状态如何，保持有利的相处方式，改善有问题的地方，双方一起努力就能尽可能经营好你们的婚姻。",
                'end_desc' => "通过以上各个维度对你婚姻发展进行的详细分析，相信你已经对自己的婚姻总体格局有比较清晰的认知了。女神也提醒你，婚姻从来都不是一个人的事情和责任，而是两个人共同的努力经营出来的结果。无论你先天婚姻是否有缺陷和困难，只要你尽可能的努力改进自己的相处方式、加强有效的沟通、珍惜你们的情感，你就能在一定程度上改善你的婚姻中出现的问题。婚姻在每个人人生中不是必然需要的，但是当你选择走进了婚姻，也就担负起了自己的责任，婚姻不易，且行且珍惜。",
            ],
            'academic' => [
                // 学业报告描述
                'text1' => '学习，会一直伴随着每个人的生活和工作，学业的发展，也会随着年龄有不同的阶段，也是每个人需要重点关注的人生领域。' . PHP_EOL . PHP_EOL . '若想详细了解自己一生的学业情况，你需要通过以下7个维度，才能更细致、全面的了解到自己学业发展的格局。',
                // 天赋分析
                'text2' => '在学习的过程中，了解自己的天赋，找准优势并加强，就会让你的学习效果事半功倍；发现劣势并加以调整会让学习效果逐步改善。' . PHP_EOL . PHP_EOL . '无论日常学习有多好，上了考场还得看临场考试能力；最终能获得怎样的学历也是你需要重点关注的。因此，你需要很重视以下部分的内容，能帮助你更加了解自己的学习能力。',
                // 基础教育分析
                'text3' => '基础教育包含：幼儿、小学、初中、高中，注重的是学科以及升学，在这个过程中，你需要了解自己的优势科目、升学是否顺利；因此我们针对你的星盘数据，分为2个维度去剖析，帮助你更加了解到自己在初级教育的学习情况。',
                // 高等教育分析
                'text4' => '高等教育包含：大学、硕士、博士及以上，注重的是专业发展，在这个过程中，你需要了解适合自己的专业方向等。因此我们针对你的星盘，并根据你星盘的数据给出适合专业的分布图，以此尽量做到帮助你更加了解到自己在高等教育的学习情况。',
                // 其它教育分析
                'text5' => '其它教育包含：国外及异地求学、在职进修、自考成考等。在这个教育过程中，你需要了解自己国外或异地教育的机会、社会教育的机会等。因此我们针对你的星盘进行了针对性的分析，你需要很重视以下部分的分析内容，能帮助你更加了解自己在其它教育阶段的学习情况，并尽可能把握机会不断提升自己。',
                // 学业对你人生的影响
                'text6' => '人生就好像是一座山峰，不同层次的人会站在不同的高度去看待这座山峰。如果你想要看到更大的世界，你就需要不断的学习和提升自己的层次和素养。因此，你需要很重视以下部分内容，以便了解学业对你人生和命运的影响具体表现。',
                'text7' => '幼儿、小学、初中、高中是属于基础教育学习阶段，因此你在基础教育的学习过程中，',
                'text8' => '大学及硕博是属于高等教育学习阶段，因此你在高等教育的学习过程中，',
                'text9' => '国外及异地求学、在职进修等是属于其他教育学习阶段，因此你在其它教育的学习过程中，',
                'end_desc' => '通过以上各个维度对你的学业发展进行的详尽分析，相信你已经对自己学业领域的总体格局有一定清晰的认知了。女神也提醒你，一个人的学业发展顺遂与否多半都是靠自己努力、不断的自我提升而来，无论学业天赋强弱，都应当保持积极的学习态度和毅力，勤能补拙，也是会有学业成就的。发展学业的目的是为了让自己有能力去把握人生，因此只要能保持学习的精神、提升自我的意志，就能够有更大的能力去实现自己想要的人生。',
            ],
        ];

        return $text[$type] ?? null;
    }

    /**
     * 获取本命预测详情
     * @param int $uid
     * @param int $rid
     * @param int $gid
     * @param string $reportName
     * @param string $orderId   订单编号
     * @return mixed
     * @throws ApiException
     */
    private function getData(int $uid, int $rid, int $gid, string $reportName = '', $orderId = ''): array
    {
        if ($orderId)
        {   // 获取历史
            $reportData = (new \app\common\cachemodel\NatalReport())->getOrderNatalReport($uid, $rid, $orderId,[$gid]);
        } else
        {   // 获取最新
            $recode = (new Recode())->getRecode(['id' => $rid]);
            $reportData = (new \app\common\cachemodel\NatalReport())->getNatalReport2($recode,[$gid]);
        }
        // $reportData = (new \app\common\cachemodel\NatalReport())->getNatalReport($uid, $rid);

        if (!isset($reportData[$gid]['content']) || !$reportData[$gid]['content'])
        {
            Log::write("本命预测结果错误：gid={$gid}:" . var_export($reportData, true), 'error', true);
            throw new ApiException('本命预测错误');
        }

        $data = $reportData[$gid]['content'];

        if (isset($data['text']) && !empty($data['text']))
        {
            $codes = [];
            // 替换词条数据
            foreach ($data['text'] as $k => $v)
            {
                if ($k === 0)
                {
                    // 替换曲线图数据
                    $data['text'][0]['levels'] = json_encode($data['text'][0]['levels']);
                } else
                {
                    foreach ($v['content_list'] as $c)
                    {
                        $codes[] = $c;
                    }
                }
            }
            // 缓存中查询所有词条
            $contentLists = (new ZlReportText())->batchGetInfoByIds($codes);

            $this->getDataText($data['text'], $reportName, $contentLists);
        }
        $data['name'] = $reportData[$gid]['name'] ?? '';
        $data['recode_info'] = isset($reportData[$gid]['recode_info']) && $reportData[$gid]['recode_info'] ? \GuzzleHttp\json_decode($reportData[$gid]['recode_info'], true) : [];
        $data['recode_is_change'] = $reportData[$gid]['recode_is_change'] ?? false;

//        $RecodeModel = new Recode();
//        $recodeInfo = $RecodeModel->getRecode(['id' => $rid]);
//
//        $birthUtTime = mktime($recodeInfo['hour'], $recodeInfo['minute'], 0, $recodeInfo['month'], $recodeInfo['day'], $recodeInfo['year']) - $recodeInfo['timezone'] * 3600;
//        $nowUtTime = time() - 8 * 3600;
//
//        $yearsOld = date('Y', $nowUtTime) - date('Y', $birthUtTime);
//
//        if (date('n', $nowUtTime) < date('n', $birthUtTime))
//        {
//            $yearsOld--;
//        }
//        // 小学生5-12 岁：
//        if ($yearsOld >= 5 && $yearsOld < 13)
//        {
//            $notice = 1;
//        }// 中学生 13-17 岁
//        elseif ($yearsOld >= 13 && $yearsOld < 18)
//        {
//            $notice = 2;
//        }// 大学生18-23岁
//        elseif ($yearsOld >= 18 && $yearsOld < 24)
//        {
//            $notice = 3;
//        }// 工薪族 24岁以上
//        elseif ($yearsOld >= 24)
//        {
//            $notice = 4;
//        } else
//        {
//            $notice = 0;
//        }
//
//        $data['notice'] = $notice;

        return $data;
    }

    /**
     * 测试方法，实时计算本命报告结果
     * @param string $reportName 报告名 [money|feelings|dating|carrer|academic]
     * @param int $rid 档案id
     * @return array|bool|false
     * @throws ApiException
     */
    private function getDataTest($reportName = '', $rid = 0)
    {
        $NatalReport = NatalReportLib::getInstance();

//        //经纬度全部默认武汉吧 114.305215,30.592935
//        //19790823 8:20
//        $recodeInfo1 = [
//            'id' => 'test1', 'name' => '197908230820', 'type' => 1,
//            'year' => 1979, 'month' => 8, 'day' => 23, 'hour' => 8, 'minute' => 20,
//            'timezone' => 8, 'is_summer' => 0, 'longitude' => 114.305215, 'latitude' => 30.592935
//        ];
//        $datas[$recodeInfo1['name']] = $NatalReport->setUserRecode($recodeInfo1)
//            ->setConfig(['getReports' => ['money' => false, 'feelings' => true, 'dating' => false, 'carrer' => false],])->getReports()['feelings']['text'];
//        //19780113 6:20
//        $recodeInfo2 = [
//            'id' => 'test2', 'name' => '197801130620', 'type' => 1,
//            'year' => 1978, 'month' => 1, 'day' => 13, 'hour' => 6, 'minute' => 20,
//            'timezone' => 8, 'is_summer' => 0, 'longitude' => 114.305215, 'latitude' => 30.592935
//        ];
//        $datas[$recodeInfo2['name']] = $NatalReport->setUserRecode($recodeInfo2)->getReports()['feelings']['text'];
//        //19820118 10:15
//        $recodeInfo3 = [
//            'id' => 'test3', 'name' => '198201181015', 'type' => 1,
//            'year' => 1982, 'month' => 1, 'day' => 18, 'hour' => 10, 'minute' => 15,
//            'timezone' => 8, 'is_summer' => 0, 'longitude' => 114.305215, 'latitude' => 30.592935
//        ];
//        $datas[$recodeInfo3['name']] = $NatalReport->setUserRecode($recodeInfo3)->getReports()['feelings']['text'];
//        //19931031 18:30
//        $recodeInfo4 = [
//            'id' => 'test4', 'name' => '199310311830', 'type' => 1,
//            'year' => 1993, 'month' => 10, 'day' => 31, 'hour' => 18, 'minute' => 30,
//            'timezone' => 8, 'is_summer' => 0, 'longitude' => 114.305215, 'latitude' => 30.592935
//        ];
//        $datas[$recodeInfo4['name']] = $NatalReport->setUserRecode($recodeInfo4)->getReports()['feelings']['text'];
//        //19770813 4:00
//        $recodeInfo5 = [
//            'id' => 'test5', 'name' => '197708130400', 'type' => 1,
//            'year' => 1977, 'month' => 8, 'day' => 13, 'hour' => 4, 'minute' => 0,
//            'timezone' => 8, 'is_summer' => 0, 'longitude' => 114.305215, 'latitude' => 30.592935
//        ];
//        $datas[$recodeInfo5['name']] = $NatalReport->setUserRecode($recodeInfo5)->getReports()['feelings']['text'];
//        //19820211 5:30
//        $recodeInfo6 = [
//            'id' => 'test6', 'name' => '198202110530', 'type' => 1,
//            'year' => 1982, 'month' => 2, 'day' => 11, 'hour' => 5, 'minute' => 30,
//            'timezone' => 8, 'is_summer' => 0, 'longitude' => 114.305215, 'latitude' => 30.592935
//        ];
//        $datas[$recodeInfo6['name']] = $NatalReport->setUserRecode($recodeInfo6)->getReports()['feelings']['text'];

        $datetime = input('datetime/s', '');
        $timezone = input('timezone/d', 8);
        $summer = input('summer/d', 0);
        $longitude = input('longitude', 0);
        $latitude = input('latitude', 0);
        $datetimeInt = strtotime($datetime);
        $type = input('sex/d', 2);

        if ($datetime !== '' && $datetimeInt !== false)
        {
            $datetime1900 = strtotime('1900-01-01 00:00:00');
            $datetime2099 = strtotime('2099-12-31 23:59:59');
            if ($datetimeInt < $datetime1900 || $datetimeInt > $datetime2099 || $timezone > 12 || $timezone < -12 || $longitude > 180 || $longitude < -180 || $latitude > 90 || $latitude < -90 || !in_array($summer, [0, 1], true) || !in_array($type, [1, 2], true))
            {
                throw new ApiException('参数错误');
            } else
            {
                $this->recodeInfo = [
                    'id' => $datetimeInt,
                    'name' => $datetimeInt,
                    'type' => $type,
                    'year' => date('Y', $datetimeInt),
                    'month' => date('m', $datetimeInt),
                    'day' => date('d', $datetimeInt),
                    'hour' => date('H', $datetimeInt),
                    'minute' => date('i', $datetimeInt),
                    'timezone' => $timezone,
                    'is_summer' => $summer,
                    'longitude' => $longitude,
                    'latitude' => $latitude,
                ];
            }
        } else
        {
            if (!$rid)
            {
                throw new ApiException('参数错误');
            }
        }

        $config = ['money' => false, 'feelings' => false, 'dating' => false, 'carrer' => false, 'academic' => false];
        $config[$reportName] = true;

        if (empty($this->recodeInfo))
        {
            $RecodeModel = new Recode();
            $recodeInfo = $RecodeModel->getRecode(['id' => $rid]);
        } else
        {
            $recodeInfo = $this->recodeInfo;
        }

        $data = $NatalReport->setUserRecode($recodeInfo)
            ->setConfig(['getReports' => $config])->getReports($reportName);

//        $birthUtTime = mktime($recodeInfo['hour'], $recodeInfo['minute'], 0, $recodeInfo['month'], $recodeInfo['day'], $recodeInfo['year']) - $recodeInfo['timezone'] * 3600;
//        $nowUtTime = time() - 8 * 3600;
//
//        $yearsOld = date('Y', $nowUtTime) - date('Y', $birthUtTime);
//
//        if (date('n', $nowUtTime) < date('n', $birthUtTime))
//        {
//            $yearsOld--;
//        }
//        // 小学生5-12 岁：
//        if ($yearsOld >= 5 && $yearsOld < 13)
//        {
//            $notice = 1;
//        }// 中学生 13-17 岁
//        elseif ($yearsOld >= 13 && $yearsOld < 18)
//        {
//            $notice = 2;
//        }// 大学生18-23岁
//        elseif ($yearsOld >= 18 && $yearsOld < 24)
//        {
//            $notice = 3;
//        }// 工薪族 24岁以上
//        elseif ($yearsOld >= 24)
//        {
//            $notice = 4;
//        } else
//        {
//            $notice = 0;
//        }
//
//        $data['notice'] = $notice;

        if ($NatalReport->getError() !== '')
        {
            Log::write('本命预测计算错误：' . $NatalReport->getError(), 'error', true);
        }

        if (isset($data['text']) && !empty($data['text']))
        {
            $codes = [];
            // 替换词条数据
            foreach ($data['text'] as $k => $v)
            {
                if ($k === 0)
                {
                    // 替换曲线图数据
                    $data['text'][0]['levels'] = json_encode($data['text'][0]['levels']);
                } else
                {
                    foreach ($v['content_list'] as $c)
                    {
                        $codes[] = $c;
                    }
                }
            }
            // 数据库中查询所有词条
            $contentLists = \think\Db::table('wechat_backup_07_18_14_43_00.zl_report_text')->where(['code' => ['in', $codes], 'status' => 1])->column('code,text');

            $this->getDataText($data['text'], $reportName, $contentLists);
        }
        $data['name'] = '本命预测';
        $data['recode_info'] = $recodeInfo;
        $data['recode_is_change'] = true;
        return $data;
    }

    /**
     * code码转换为词条
     * @param array $text 按主题分的code码
     * @param string $reportName 报告名 [money|feelings|dating|carrer|academic]
     * @param array $contentLists 词条
     */
    private function getDataText(&$text, $reportName, $contentLists)
    {
        foreach ($text as $k => $v)
        {
            if ($k > 0)
            {
                $list = [];
                switch ($reportName)
                {
                    case 'money':   // 财富
                        $n = 0;
                        foreach ($v['content_list'] as $k1 => $v1)
                        {
                            $text[$k]['content_list'][$k1] = [
                                'code' => $v1,
                                'text' => $contentLists[$v1] ?? ''
                            ];
                            switch ($k)
                            {
                                case 1:
                                    $list[substr($v1, 0, 6)] = ($list[substr($v1, 0, 6)] ?? '') . ($contentLists[$v1] ?? '');
                                    break;
                                case 2:
                                    if (in_array(substr($v1, 0, 10), ['1001000003', '1001000103', '1001020003', '1001010003', '1001010103', '1001020103'], true))
                                    {
                                        $list[substr($v1, 0, 10)] = trim(($list[substr($v1, 0, 10)] ?? '') . "\r\n\r\n" . ($contentLists[$v1] ?? ''));
                                    } else
                                    {
                                        $list[substr($v1, 0, 10)] = ($list[substr($v1, 0, 10)] ?? '') . ($contentLists[$v1] ?? '');
                                    }
                                    break;
                                case 3:
                                    if (strpos($v1, '100202') === 0)
                                    {
                                        $tmpText = '';
                                        if ($n === 0)
                                        {
                                            $tmpText = '<div class="t5-box"><p class="t1 pre-text">你在早年的财富发展情况是：</p></div><div class="t3-box">
                    <p class="t3 pre-text">';
                                        } elseif ($n === 1)
                                        {
                                            $tmpText = '<div class="t5-box"><p class="t1 pre-text">你在中年的财富发展情况是：</p></div><div class="t3-box">
                    <p class="t3 pre-text">';
                                        } elseif ($n === 2)
                                        {
                                            $tmpText = '<div class="t5-box"><p class="t1 pre-text">你在晚年的财富发展情况是：</p></div><div class="t3-box">
                    <p class="t3 pre-text">';
                                        }

                                        $list[substr($v1, 0, 6)] = trim(($list[substr($v1, 0, 6)] ?? '') . "\r\n\r\n" . $tmpText . ($contentLists[$v1] ?? '') . '</p></div>');
                                        $n++;
                                    } else
                                    {
                                        $list[substr($v1, 0, 6)] = ($list[substr($v1, 0, 6)] ?? '') . ($contentLists[$v1] ?? '');
                                    }
                                    break;
                                default:
                            }
                        }
                        break;
                    case 'feelings': // 恋爱
                        foreach ($v['content_list'] as $k1 => $v1)
                        {
                            $text[$k]['content_list'][$k1] = [
                                'code' => $v1,
                                'text' => $contentLists[$v1] ?? ''
                            ];
                            switch ($k)
                            {
                                case 1:
                                    $code = substr($v1, 0, 6);
                                    switch ($code)
                                    {
                                        case '110000':
                                            $list[substr($v1, 0, 6)] = ($list[substr($v1, 0, 6)] ?? '') . ($contentLists[$v1] ?? '');
                                            break;
                                        case '110001':
                                            $code1 = substr($v1, 0, 8);
                                            if (in_array($code1, ['11000103', '11000107'], true))
                                            {
                                                $list[substr($v1, 0, 6)] .= "\r\n\r\n" . ($contentLists[$v1] ?? '');
                                            } else
                                            {
                                                $list[substr($v1, 0, 6)] = ($list[substr($v1, 0, 6)] ?? '') . ($contentLists[$v1] ?? '');
                                            }
                                            break;
                                        case '110002':
                                            $code1 = substr($v1, 0, 8);
                                            if (in_array($code1, ['11000203', '11000207'], true))
                                            {
                                                $list[substr($v1, 0, 6)] .= "\r\n\r\n" . ($contentLists[$v1] ?? '');
                                            } else
                                            {
                                                $list[substr($v1, 0, 6)] = ($list[substr($v1, 0, 6)] ?? '') . ($contentLists[$v1] ?? '');
                                            }
                                            break;
                                        case '110003':
                                            $str = $contentLists[$v1] ?? '';
                                            if ($str)
                                            {
                                                $list[substr($v1, 0, 6)][] = $str;
                                            }
                                            break;
                                        default:
                                    }
                                    break;
                                case 2:
                                case 4:
                                    $list[substr($v1, 0, 6)] = trim(($list[substr($v1, 0, 6)] ?? '') . "\r\n\r\n" . ($contentLists[$v1] ?? ''));
                                    break;
                                case 3:
                                    if (strpos($v1, '110200') === 0)
                                    {
                                        $list[substr($v1, 0, 6)] = trim(($list[substr($v1, 0, 6)] ?? '') . "\r\n\r\n" . ($contentLists[$v1] ?? ''));
                                    } else
                                    {
                                        $list[substr($v1, 0, 8)] = trim(($list[substr($v1, 0, 8)] ?? '') . "\r\n\r\n" . ($contentLists[$v1] ?? ''));
                                    }
                                    break;
                                default:
                            }
                        }
                        break;
                    case 'dating':  // 婚姻
                        foreach ($v['content_list'] as $k1 => $v1)
                        {
                            $tmpText = $contentLists[$v1] ?? '';
                            switch ($k)
                            {
                                // 主题 2：婚姻特质
                                case 1:
                                    $code1 = substr($v1, 0, 6);
                                    $code2 = substr($v1, 0, 8);
                                    // 早婚or晚婚
                                    if ($code1 === '140102')
                                    {
                                        // 早婚
                                        if (in_array($code2, ['14010200', '14010201'], true))
                                        {
                                            $list[$code1] = isset($list[$code1]) ? ($list[$code1] . "\r\n\r\n" . $tmpText) : "<span style='color:rgb(107,107,107);font-weight: bold;'>你有较大的概率会选择早早步入婚姻，这可能是因为：</span>\r\n\r\n" . $tmpText;
                                        }// 晚婚
                                        elseif (in_array($code2, ['14010202', '14010203'], true))
                                        {
                                            $list[$code1] = isset($list[$code1]) ? ($list[$code1] . "\r\n\r\n" . $tmpText) : "<span style='color:rgb(107,107,107);font-weight: bold;'>你有较大的概率会选择推迟步入婚姻的时间，这可能是因为：</span>\r\n\r\n" . $tmpText;
                                        }
                                    } else
                                    {
                                        $list[$code1] = isset($list[$code1]) ? ($list[$code1] . "\r\n\r\n" . $tmpText) : $tmpText;
                                    }
                                    break;
                                // 主题3：什么在阻碍你姻缘
                                case 2:
                                    $code = substr($v1, 0, 6);
                                    if ($code === '140200')
                                    {
                                        $codeT = substr($v1, 0, 8);
//                                        // 跟你性格不合的类型是：XX 星座成分较重的人。  140200000000
//                                        if ($codeT === '14020000')
//                                        {
//                                            if (!isset($list[$code]) || strpos($list[$code], '跟你性格不合的类型是：') === false)
//                                            {
//                                                $signs = ['', '白羊座', '金牛座', '双子座', '巨蟹座', '狮子座', '处女座', '天秤座', '天蝎座', '射手座', '摩羯座', '水瓶座', '双鱼座'];
//                                                $tmpText = '<span style=\'color:rgb(107,107,107);font-weight: bold;\'>跟你性格不合的类型是：' . $signs[$v['levels'][0][0]] . '和' . $signs[$v['levels'][0][1]] . '成分较重的人。</span>' . $tmpText;
//                                            }
//                                        } // 跟你感情不契合的类型是：出生年在XX 年份的人，  1402000200
//                                        elseif ($codeT === '14020002')
//                                        {
//                                            $tt1 = empty($v['levels'][1]) ? '未知' : implode('、', $v['levels'][1]);
//                                            $tmpText = '<span style=\'color:rgb(107,107,107);font-weight: bold;\'>跟你感情不契合的类型是：出生年在' . $tt1 . '年份的人</span>，' . $tmpText;
//                                        } // 跟你无法沟通的类型是：出生在 XX 年份的人，  1402000500
//                                        elseif ($codeT === '14020005')
//                                        {
//                                            $tt2 = empty($v['levels'][2]) ? '未知' : implode('、', $v['levels'][2]);
//                                            $tmpText = '<span style=\'color:rgb(107,107,107);font-weight: bold;\'>跟你无法沟通的类型是：出生在 ' . $tt2 . ' 年份的人</span>，' . $tmpText;
//                                        }
// 跟你性格不合的类型是：XX 星座成分较重的人。  140200000000
                                        // 跟你性格不合的类型是：XX 星座成分较重的人。  140200000000
                                        if ($codeT === '14020000')
                                        {
                                            if (!isset($list[$code]) || strpos($list[$code], '在婚姻关系中，跟你不合的类型是：拥有') === false)
                                            {
                                                $signs = ['', '白羊座', '金牛座', '双子座', '巨蟹座', '狮子座', '处女座', '天秤座', '天蝎座', '射手座', '摩羯座', '水瓶座', '双鱼座'];
                                                $tmpText = '<span style=\'color:rgb(107,107,107);font-weight: bold;\'>在婚姻关系中，跟你不合的类型是：拥有' . $signs[$v['levels'][0][0]] . '和' . $signs[$v['levels'][0][1]] . '性格特质的人。</span>' . $tmpText;
                                            }
                                        } // 跟你感情不契合的类型是：出生年在XX 年份的人，  1402000200
                                        elseif ($codeT === '14020002')
                                        {
                                            $tt1 = empty($v['levels'][1]) ? '未知' : implode('、', $v['levels'][1]);
                                            $tmpText = '<span style=\'color:rgb(107,107,107);font-weight: bold;\'>在婚姻关系中，你与' . $tt1 . '年份出生的人，在相处的时候并不是很契合。</span>' . $tmpText;
                                        } // 跟你无法沟通的类型是：出生在 XX 年份的人，  1402000500
                                        elseif ($codeT === '14020005')
                                        {
                                            $tt2 = empty($v['levels'][2]) ? '未知' : implode('、', $v['levels'][2]);
                                            $tmpText = '<span style=\'color:rgb(107,107,107);font-weight: bold;\'>在婚姻关系当中，你与 ' . $tt2 . ' 年份出生的人，在沟通方面容易产生分歧。</span>' . $tmpText;
                                        }

                                    }
                                    $list[$code] = isset($list[$code]) ? ($list[$code] . "\r\n\r\n" . $tmpText) : $tmpText;
                                    break;
                                // 主题4：结婚对象条件如何
                                case 3:
                                    //①性格特征
                                    //②经济能力
                                    //③事业特质
                                    //④家庭背景
                                    //⑤相识途径
                                    $code = substr($v1, 0, 6);
                                    $list[$code] = isset($list[$code]) ? ($list[$code] . "\r\n\r\n" . $tmpText) : $tmpText;
                                    break;
                                // 主题5：建议改为结婚几率最大时间什么时候会结婚
                                case 4:
                                    break;
                                // 主题6：婚后感情如何
                                case 5:
                                    $code = substr($v1, 0, 6);
                                    if ($code === '140503')
                                    {
                                        switch ($v1)
                                        {
                                            case '14050300':
                                                $pt = '<span style="color:rgb(107,107,107);font-weight: bold;">婚后你容易因为不自信的问题而影响感情，这会体现在：</span>';
                                                break;
                                            case '14050301':
                                                $pt = '<span style="color:rgb(107,107,107);font-weight: bold;">婚后你容易因为情绪管理问题而影响感情，这会体现在：</span>';
                                                break;
                                            case '14050302':
                                                $pt = '<span style="color:rgb(107,107,107);font-weight: bold;">婚后你容易因为沟通问题而影响感情，这会体现在：</span>';
                                                break;
                                            case '14050303':
                                                $pt = '<span style="color:rgb(107,107,107);font-weight: bold;">婚后你容易因为情感模式及喜好差异问题而影响感情，这会体现在：</span>';
                                                break;
                                            case '14050304':
                                                $pt = '<span style="color:rgb(107,107,107);font-weight: bold;">婚后你容易因为激情和性生活问题而影响感情，这会体现在：</span>';
                                                break;
                                            default:
                                                $pt = '';
                                                break;
                                        }
                                        if ($pt)
                                        {
                                            $tmpText = $pt . "\r\n\r\n" . $tmpText;
                                        }
                                    }
                                    $list[$code] = isset($list[$code]) ? ($list[$code] . "\r\n\r\n" . $tmpText) : $tmpText;
                                    break;
                                default:
                                    break;
                            }
                        }
                        break;
                    case 'carrer':  // 事业
                        $a = '';
                        $b = '';
                        $c = '';
                        $d = '';
                        $e1 = '';
                        $e2 = '';
                        $e3 = '';
                        $c1 = '';
                        $c2 = '';
                        $c3 = '';
                        foreach ($v['content_list'] as $k1 => $v1)
                        {
                            $text[$k]['content_list'][$k1] = [
                                'code' => $v1,
                                'text' => $contentLists[$v1] ?? ''
                            ];
                            switch ($k)
                            {
                                case 1:
                                    $code = substr($v1, 0, 6);
                                    switch ($code)
                                    {
                                        case '120000':
                                            $list[substr($v1, 0, 6)] = trim(($list[substr($v1, 0, 6)] ?? '') . "\r\n\r\n" . ($contentLists[$v1] ?? ''));
                                            break;
                                        case '120001':
                                            $code1 = substr($v1, 0, 8);
                                            if ($code1 === '12000100')
                                            {
                                                $a .= "\r\n\r\n" . ($contentLists[$v1] ?? '');
                                            } else
                                            {
                                                $b .= "\r\n\r\n" . ($contentLists[$v1] ?? '');
                                            }
                                            $list[substr($v1, 0, 6)] = trim("<span class='tit1 pre-text'>你在工作中的优势是：</span>\r\n" . trim($a) . ($b ? "\r\n<span class='tit1 pre-text'>除此之外，你在工作中还有其它好运：</span>\r\n" . trim($b) : ''));
                                            break;
                                        case '120002':
                                            $code1 = substr($v1, 0, 8);
                                            if ($code1 === '12000200')
                                            {
                                                $c .= "\r\n\r\n" . ($contentLists[$v1] ?? '');
                                            } else
                                            {
                                                $d .= "\r\n\r\n" . ($contentLists[$v1] ?? '');
                                            }
                                            $list[substr($v1, 0, 6)] = trim("<span class='tit1 pre-text'>你在工作中存在以下问题可能影响你事业发展：</span>\r\n" . trim($c) . ($d ? "\r\n<span class='tit1 pre-text'>除此之外，你的工作环境还有其它困难影响：</span>\r\n" . trim($d) : ''));
                                            break;
                                        default:
                                    }
                                    break;
                                case 2:
                                    $code = substr($v1, 0, 6);
                                    switch ($code)
                                    {
                                        case '120100':
                                        case '120105':
                                            $list[substr($v1, 0, 6)] = ($list[substr($v1, 0, 6)] ?? '') . ($contentLists[$v1] ?? '');
                                            break;
                                        case '120101':
                                        case '120102':
                                        case '120103':
                                            $list[substr($v1, 0, 6)] = trim(($list[substr($v1, 0, 6)] ?? '') . "\r\n\r\n" . ($contentLists[$v1] ?? ''));
                                            break;
                                        case '120104':
                                            $code1 = substr($v1, 0, 8);
                                            if ($code1 === '12010400')
                                            {
                                                $c1 .= ($contentLists[$v1] ?? '');
                                            } elseif ($code1 === '12010401')
                                            {
                                                $c2 .= ($contentLists[$v1] ?? '');
                                            } else
                                            {
                                                $c3 .= ($contentLists[$v1] ?? '');
                                            }
                                            $list[substr($v1, 0, 6)] = trim(($c1 ? $c1 . "\r\n\r\n" : '') . $c2 . "\r\n\r\n" . $c3);
                                            break;
                                        case '120106':
                                            $code1 = substr($v1, 0, 8);
                                            if ($code1 === '12010600')
                                            {
                                                $e1 .= ($contentLists[$v1] ?? '');
                                            } elseif ($code1 === '12010601')
                                            {
                                                $e2 .= ($contentLists[$v1] ?? '');
                                            } else
                                            {
                                                $e3 .= ($contentLists[$v1] ?? '');
                                            }
                                            $list[substr($v1, 0, 6)] = trim($e1 . "\r\n\r\n" . $e2 . "\r\n\r\n" . $e3);
                                            break;
                                        default:
                                    }
                                    break;
                                case 4:
                                    $list[substr($v1, 0, 6)] = trim(($list[substr($v1, 0, 6)] ?? '') . "\r\n\r\n" . ($contentLists[$v1] ?? ''));
                                    break;
                                case 3:
                                case 5:
                                    $list[substr($v1, 0, 8)] = trim(($list[substr($v1, 0, 8)] ?? '') . "\r\n\r\n" . ($contentLists[$v1] ?? ''));
                                    break;
                                default:
                            }
                        }
                        break;
                    case 'academic':
//                            $preTexts1 = ['首先，给你建议的科目是', '其次，给你建议的科目是', '最后，给你建议的科目是'];
                        $preTexts2 = ['首先，给你建议的专业是', '其次，给你建议的专业是', '最后，给你建议的专业是'];
                        $majors = ['哲学', '经济学', '法学', '教育学', '文学', '历史学', '理学', '工学', '农学', '医学', '管理学', '艺术学'];
                        foreach ($v['content_list'] as $k1 => $v1)
                        {
                            $tmpText = $contentLists[$v1] ?? '';
                            $text[$k]['content_list'][$k1] = [
                                'code' => $v1,
                                'text' => $tmpText
                            ];
                            switch ($k)
                            {
                                case 1:
                                    /**
                                     * 学业禀赋类型
                                     */
                                case 2:
                                    /**
                                     * 学习能力优劣势
                                     * 优势00
                                     * 劣势01
                                     * 建议02
                                     */
                                    $code = substr($v1, 0, 4);
                                    $list[$code . '0' . $k1] = $tmpText;
                                    break;
                                case 3:
                                    /**
                                     * 适合的科目及专业
                                     * 适合的科目  3个
                                     * 适合的专业 3个
                                     */
                                    $code = substr($v1, 0, 6);
                                    if ($code === '130300')
                                    {
                                        $list[$code] = isset($list[$code]) ? ($list[$code] . "\r\n\r\n" . '另外' . $tmpText) : $tmpText;
                                    } else
                                    {
                                        $majorCode = substr($v1, 6, 2) * 1;
                                        $majorText = '<span class="major" style="color: #3485FF;" data-id="' . $majorCode . '">' . $majors[$majorCode] . '</span>。';
                                        $tmpText = array_shift($preTexts2) . $majorText . '' . $tmpText;
                                        $list[$code] = isset($list[$code]) ? ($list[$code] . "\r\n\r\n" . $tmpText) : $tmpText;
                                    }
                                    break;
                                case 4:
                                    /**
                                     * 考证考试是否顺遂
                                     * 考试能力强弱  2个
                                     * 升学是否顺利 3个
                                     */
                                case 5:
                                    /**
                                     * 最终学历高低
                                     * 学历高低分析  3个
                                     * 有无国外教育机会 2个
                                     * 有无社会教育（在职进修）机会 4个
                                     */
                                    $code = substr($v1, 0, 6);
                                    $list[$code] = isset($list[$code]) ? ($list[$code] . "\r\n\r\n" . $tmpText) : $tmpText;
                                    break;
                                case 6:
                                    /**
                                     * 学业对你人生的影响
                                     * 是否会改变命运  2个
                                     * 阶段性发展 3个
                                     * 130600000000
                                     * 130600010000
                                     * 130601000000
                                     * 130601010000
                                     * 130601020000
                                     */
                                    $code = substr($v1, 0, 6);
                                    if ($code === '130600')
                                    {
                                        $list[$code] = isset($list[$code]) ? ($list[$code] . "\r\n\r\n" . $tmpText) : $tmpText;
                                    } else
                                    {
                                        $code2 = substr($v1, 0, 8);
                                        $list[$code2] = isset($list[$code2]) ? ($list[$code2] . "\r\n\r\n" . $tmpText) : $tmpText;
                                    }
                                    break;
                            }
                        }
                        if (isset($list['130301']))
                        {
                            $list['130301'] .= "\r\n\r\n" . '除此之外，适合你的专业类别还有 <span class="major" style="color: #3485ff;" data-id="' . $v['levels']['radar'][1][3]['m'] . '">' . $majors[$v['levels']['radar'][1][3]['m']] . '</span> 、<span class="major" style="color: #3485FF;" data-id="' . $v['levels']['radar'][1][4]['m'] . '">' . $majors[$v['levels']['radar'][1][4]['m']] . '</span> 、<span class="major" style="color: #3485FF;" data-id="' . $v['levels']['radar'][1][5]['m'] . '">' . $majors[$v['levels']['radar'][1][5]['m']] . '</span> ，以上这些只是建议为适合你的专业方向，不代表你一定会喜欢，也不一定非得选择。';
                        }
                        break;
                    default:
                }

                $text[$k]['content_text'] = $list;
            }
        }
    }
}
